package com.iot.inclinometer.dao;

import com.iot.inclinometer.pojo.ObserveInfo;

import java.util.List;

public interface IObserveInfoDao {
	/**
	 * 找出表中全部数据
	 * 
	 * @return List集合
	 */
	List<ObserveInfo> selectObserverInfos();
	/**
	 * 插入记录
	 * 
	 * @param info
	 * @return 返回插入记录的主键ID
	 */
	int insert(ObserveInfo info);
	 /**
		 * 根据baseId得到上一次测量的测试次数
		 * @param baseId
		 * @return
		 */
	int getLastCountByBaseId(int baseId);
     /**
	 * 根据baseId得到上一次测量的测试人
	 * @param baseId
	 * @return
	 */
	String getLastObserverByBaseId(int baseId);
	/**
	 * 根据baseId得到上一次测量的间距
	 * @param baseId
	 * @return
	 */
	String getLastIntervalByBaseId(int baseId);
	/**
	 * 通过条件查找记录集合
	 * 
	 * @param baseId
	 *            基本信息ID
	 * @return
	 */
	List<ObserveInfo> selectObserverInfos(int baseId);
	List<ObserveInfo> selectCountInfoscount(int obId);
	

	/**
	 * 通过条件查找记录集合
	 * 
	 * @param baseId
	 *            基本信息ID
	 * @param measurecount
	 *            测量的次数
	 * @return List集合
	 */
	List<ObserveInfo> selectObserverInfos(int baseId, String measurecount);

	/**
	 * 通过条件查找记录集合
	 * 
	 * @param baseId
	 *            基本信息ID
	 * @param measurecount
	 *            测量的次数
	 * @param dateFrom
	 *            起始时间
	 * @param dateEnd
	 *            结束时间
	 * @return
	 */
	List<ObserveInfo> selectObserveInfos(int baseId, String direction,
			String dateFrom, String dateEnd);

	/**
	 * 通过时间选取
	 * 
	 * @param dateFrom
	 * @param dateEnd
	 * @return
	 */
	List<ObserveInfo> selectObserveInfos(String dateFrom, String dateEnd);

	/**
	 * 
	 * @param observeInfo
	 * @return
	 */
	boolean update(ObserveInfo observeInfo);

	/**
	 * 通过条件查找记录
	 * @param measurecount测量的次数，“第一次测量/第二次测量”
	 * @param baseId基本信息ID
	 * @param count有效测量的次数
	 * @return
	 */
	ObserveInfo selectObserveInfo(String measurecount,int baseId,int count);
	/**
	 * 通过obId删除观测信息数据
	 * @param obId
	 * @return
	 */
	int deleteObserveInfoByobId(int obId);
	List<ObserveInfo> selectObserverInfoscount(int obId);
	int deleteAllObserverInfos();
	

}
